xend: save/restore cpu_weight and cpu_cap
authorKeir Fraser <keir.fraser@citrix.com>
Sun, 2 Aug 2009 11:26:23 +0000 (12:26 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Sun, 2 Aug 2009 11:26:23 +0000 (12:26 +0100)
This patch allows vcpus_params cpu_weight and cpu_cap to be saved and
restored.  Most the code to support this already existed, but the save
path needed to be updated to explicitly save these params, and the
restore path needed to be updated to resend the params down to the
kernel.

From: Andrew Jones <drjones@redhat.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
tools/python/xen/xend/XendConfig.py
tools/python/xen/xend/XendDomainInfo.py

index 9ef008c54e16b691d76b900f5742186399382daa..edb6a2fe32c74982f86c522f8e8aff63ed06ef84 100644 (file)
@@ -1088,6 +1088,10 @@ class XendConfig(dict):
             if self.has_key(legacy) and self[legacy] not in (None, []):
                 sxpr.append([legacy, self[legacy]])
 
+        if self.has_key('vcpus_params'):
+            sxpr.append(['cpu_weight', int(self['vcpus_params'].get('weight', 256))])
+            sxpr.append(['cpu_cap', int(self['vcpus_params'].get('cap', 0))])
+
         if self.has_key('security_label'):
             sxpr.append(['security_label', self['security_label']])
 
index b505a3d86ebee4eb6f0300f67eeec7b5bb85d72e..2350cb7d181a965fecae57a225277377160c4cd5 100644 (file)
@@ -2448,6 +2448,8 @@ class XendDomainInfo:
                 raise VmError("Cpu cap out of range, valid range is from 0 to %s for specified number of vcpus" %
                               (self.getVCpuCount() * 100))
 
+            xc.sched_credit_domain_set(self.domid, weight, cap)
+
         # Test whether the devices can be assigned with VT-d
         self.info.update_platform_pci()
         pci = self.info["platform"].get("pci")